Many object-oriented computer programming languages share several similar structures and often share equivalent functions or methods. Each object-oriented computer programming language has a hierarchy of data types or objects. The hierarchy of data types includes every data type used in the language. Each data type in each language is a sub-class of the respective language. For example, both Java and C# (C-sharp) languages have similar hierarchical structures in that both have a top-level hierarchy called a class and the top-level class is referred to as an “Object” (i.e. in Java: java.lang.Object and in C#: System.Object).
FIGS. 1 and 1A show the similar hierarchical structures of Java and C# respectively. A graphical representation of the hierarchy of data types for a single object-oriented language can be presented as an inverted tree with a “root” object 110, 150 at the top and each sub-class appearing as a branch extending downward from the language object. Additional layers of sub-classes can extend from each sub-class. Each class (and the sub classes that fall below the class) share common characteristics. The characteristics include the type of functions that can be performed in each class or sub-class or sub-sub-class. For examples: in FIG. 1 a Java root class 110 is presented. The Java root class 110 includes several fields including a Java name 111 that identifies the object as a Java object. A field identifying the number of methods 112 and a field with links 114 to the actual Java methods 120, 130. Each Java method 120, 130 also includes a Java name 121, 131 and an implementation of the actual method 123, 133 including the actual code of the respective Java method 120, 130.
Similarly, FIG. 1A shows a C# root object 150. The C# root object 150 includes several fields including a C# name 151 that identifies the object as a C# object. A field identifying the number of methods 152 and a field with links 154 to the actual C# methods 160, 170. Each C# method 160, 170 also includes a C# name 161, 171 and an implementation of the actual method 163, 173 including the actual code of the respective C# method 160, 170.
As object-oriented programming languages all serve similar goals: i.e. modularized programming, then inevitably many similar and often identical data types, methods and sub-classes of objects are found in the various object-oriented programming languages. However, often certain languages include unique classes or methods that are not easily implemented in another language. For example, Java may more easily allow a function that C# does not allow easily.